
Ext.define('desarrollo.ItemForm', {
    extend: 'Ext.form.Panel',
    alias: 'widget.itemform',
    requires: ['Ext.form.field.Text'],
    initComponent: function(){		
        Ext.apply(this, {
            activeRecord: null,
            iconCls: 'icon-item',
            frame: true,
            defaultType: 'textfield',
            bodyPadding: 15,
            fieldDefaults: {
                anchor: '100%',
            },
            items: [{
                fieldLabel: 'Id',
                name: 'id',
                type: 'int',
                itemId: 'idItem',
                hidden: true,
            },{
                fieldLabel: 'IdFase',
                name: 'idFase',
                type: 'int',
                itemId: 'idFase',
                hidden: true,
            },{
                fieldLabel: 'Nombre',
                name: 'nombre',
                itemId: 'nombre',
            },{
				xtype: 'textarea',
                fieldLabel: 'Descripcion',
                name: 'descripcion',
                itemId: 'descripcion',
            },{
                fieldLabel: 'Complejidad',
                name: 'complejidad',
                type: 'int',
                itemId: 'idComplejidad',
                
            },{
                fieldLabel: 'Version',
                name: 'version',
                itemId: 'f_version',
                hidden: true,
            },{
                fieldLabel: 'Estado',
                name: 'estado',
                itemId: 'f_estado',
                hidden: true,
            },{
				xtype: 'combobox',
				name: 'tipoItem',
				itemId: 'tipoItem',
				fieldLabel: 'TipoItem',
				displayField: 'id',
				listConfig: {
					getInnerTpl: function() {
						return '<div data-qtip="{nombreTipoItem}">{nombreTipoItem} ({id})</div>';
					}
				}
					   
			}],
            dockedItems: [{
						xtype: 'toolbar',
						items: [{
							itemId: 'idinfo-buscar',
							iconCls: 'icon-checked',
							text: '<b><font color="red">Campos habilitados para filtrado</font></b>',
							//disabled: true,
							hidden: true,
							scope: this,
							handler: this.onReset
							
						}, {
							iconCls: 'icon-unchecked',
							itemId: 'idfiltrar',
							text: '<b>Habilitar campos para filtrado</b>',
							//disabled: true,
							//hidden: true,
							scope: this,
							handler: this.onFiltrar
						},
						{	//iconCls: 'icon-reset',	
											//text: 'Reset',	
											//tooltip:'Resetear el formulario',	
											//scope: this,	
											//handler: this.onReset
						},{
						iconCls: 'icon-revertir',
						itemId: 'revertir',
						text: '<b>Revertir</b>',
						hidden: true,
						scope: this, 
						handler: this.onRevertir
					},{
						iconCls: 'icon-historial',
						itemId: 'historial',
						text: '<b>Historial</b>',
						hidden: true,
						scope: this, 
						handler: this.onHistorial
					},{
						iconCls: 'icon-rel-ant',
						itemId: 'idantecesor',
						text: '<b>Antecesor</b>',
						hidden: true,
						scope: this, 
						handler: this.onAntecesor
					},{
						iconCls: 'icon-rel-pad',
						itemId: 'idpadre',
						text: '<b>Padre</b>',
						hidden: true,
						scope: this, 
						handler: this.onPadre
					}]
				},{
				weight: 1,
                xtype: 'toolbar',
                dock: 'bottom',
                items: ['->',{
						iconCls: 'icon-atributos',
						itemId: 'atributo',
						text: '<b>Atributos</b>',
						hidden: true,
						scope: this, 
						handler: this.onAtributos
					},{
                    iconCls: 'icon-delete',
                    itemId: 'delete',
                    hidden: true,
                    scope: this, 
                    text: '<b>Eliminar</b>',
                    scope: this,
                    handler: this.onDelete
                },{
                    iconCls: 'icon-save',
                    itemId: 'save',
                    text: '<b>Guardar</b>',
                    hidden: true,
                    scope: this, 
                    handler: this.onSave
                },{
					iconCls: 'icon-revivir',
					itemId: 'revivir',
					text: '<b>Revivir</b>',
					//hidden: true,
					scope: this, 
					handler: this.onRevivir
				}, {
                    iconCls: 'icon-buscar',
                    itemId: 'idbuscar',
                    text: '<b>Buscar</b>',
                    tooltip:'Buscar usuarios',
                    //disabled: true,
                    hidden: true,
                    scope: this,
                    handler: this.onBuscar
                }, {
                    iconCls: 'icon-add',
                    itemId: 'create',
                    text: '<b>Crear</b>',
                    scope: this,
                    handler: this.onCreate
                }, {
                    iconCls: 'icon-reset',
                    text: '<b>Reset</b>',
                    scope: this,
                    handler: this.onReset
                }]
            }]
        });
        this.callParent();
    },

    setActiveRecord: function(record){
        this.activeRecord = record;
        if (record) {

            this.down('#save').show();
            this.down('#delete').show();
            this.down('#historial').show();
            this.down('#revertir').show();
            this.down('#idantecesor').show();
            this.down('#idpadre').show();
            this.down('#create').hide();
            this.down('#tipoItem').hide();
            this.down('#revivir').hide();
            this.down('#descripcion').show(); 
            this.down('#f_version').hide();
            this.down('#f_estado').hide();
            this.down('#atributo').show();  
            this.down('#idbuscar').hide();
            this.down('#idinfo-buscar').hide();
            this.down('#idfiltrar').hide();                     
            this.getForm().loadRecord(record);
        } else {

            this.down('#save').hide();
            this.down('#delete').hide();
            this.down('#historial').hide();
            this.down('#revertir').hide();
            this.down('#idantecesor').hide();
            this.down('#idpadre').hide();
            this.down('#create').show();
            this.down('#tipoItem').show();
            this.down('#revivir').show();
            this.down('#atributo').hide();
            this.down('#idbuscar').hide();
			this.down('#idinfo-buscar').hide();
			this.down('#f_version').hide(); 
			this.down('#f_estado').hide();
			this.down('#idfiltrar').show(); 
			this.down('#descripcion').show(); 
			this.down('#tipoItem').show();
            //this.getForm().reset();
            this.down('#descripcion').setValue("");
            this.down('#idComplejidad').setValue("");
            this.down('#idItem').setValue("");
            this.down('#tipoItem').setValue("");
            this.down('#nombre').setValue("");
            
        }
    },

	
    onCreate: function(){
        var form = this.getForm();
                    form.submit({                        
                        url: 'crear_item',
                        params: {	submit: 'submit'	},
						method: "post",
                       success: function(form, action) {
								this.down('#descripcion').setValue("");
								this.down('#idComplejidad').setValue("");
								this.down('#idItem').setValue("");
								this.down('#tipoItem').setValue("");
								this.down('#nombre').setValue("");
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Item creado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});
							this.fireEvent('refresh');							                       
                        },
                        scope: this,                        
                        failure: function(form, action) {									
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido crear el item', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });
    },
    
    onSave: function(){
        var form = this.getForm();
                    form.submit({                        
                        url: 'modificar_item',
                        params: {	submit: 'submit'	},
						method: "post",
                       success: function(form, action) {
								this.down('#descripcion').setValue("");
								this.down('#idComplejidad').setValue("");
								this.down('#idItem').setValue("");
								this.down('#tipoItem').setValue("");
								this.down('#nombre').setValue("");
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Item modificado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});
							this.fireEvent('refresh');							                       
                        },
                        scope: this,                        
                        failure: function(form, action) {									
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido modificar el item', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });
    },
        
    onDelete: function(){ 
        var form = this.getForm();
                    form.submit({                        
                        url: 'eliminar_item',
                        params: {	submit: 'submit'	},
						method: "post",
                       success: function(form, action) {
								this.down('#descripcion').setValue("");
								this.down('#idComplejidad').setValue("");
								this.down('#idItem').setValue("");
								this.down('#tipoItem').setValue("");
								this.down('#nombre').setValue("");
							    Ext.Msg.show({  
									title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
									msg: 'Item eliminado satisfactoriamente', //<- El mensaje  
									icon: 'ext-mb-ok',
								});
							this.fireEvent('refresh');							                       
                        },
                        scope: this,                        
                        failure: function(form, action) {									
									Ext.Msg.show({  
										title: '<br><p align="center"><b>ALPHA MANAGER</b></p>', //<- el título del diálogo  
										msg: 'No se ha podido eliminar el item', //<- El mensaje  
										icon: 'ext-mb-error',
									});
                        }
                    });
    },  
     
	onHistorial: function(){
			var form = this.getForm();
			this.fireEvent('ddHistorial', form.getValues(true));            
	}, 
	
	onRevertir: function(){
			var form = this.getForm();
			this.fireEvent('ddRevertir', form.getValues(true));            
	},    

	onAtributos: function(){
			var form = this.getForm();
			this.fireEvent('ddAtributos', form.getValues(true));            
	}, 	
	
	onAntecesor: function(){
			var form = this.getForm();
			this.fireEvent('ddAntecesor', form.getValues(true));            
	}, 
	
	onPadre: function(){
			var form = this.getForm();
			this.fireEvent('ddPadre', form.getValues(true));            
	}, 
	
	onRevivir: function(){
			var form = this.getForm();
			this.fireEvent('ddRevivir', form.getValues(true));            
	}, 		
	
    onReset: function(){
        this.setActiveRecord(null);
        //this.getForm().reset();
        this.fireEvent('reset');
    },
    
    onFiltrar: function(){
		this.down('#create').hide();
		this.down('#revivir').hide();
		this.down('#descripcion').hide(); 
		this.down('#tipoItem').hide(); 
		this.down('#idbuscar').show();
		this.down('#idinfo-buscar').show();
		this.down('#idfiltrar').hide(); 
		this.down('#f_version').show();
		this.down('#f_version').setValue("");
		this.down('#f_estado').show();
		this.down('#f_estado').setValue("");
		//this.down('#f_fechaCreacion').show(); 
						
    },
    
    onBuscar: function(){
		var form = this.getForm();
		this.fireEvent('buscar', form.getValues(true));
						
    },
    onListar: function(){
		this.fireEvent('listar');
						
    },


    
});
